home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 3: Developer Tools / Linux Cubed Series 3 - Developer Tools.iso / devel / lang / lisp / blt1.000 / blt1 / blt-1.7-for-STk / BLT-patch next >
Encoding:
Text File  |  1994-07-25  |  6.8 KB  |  249 lines

  1. *** blt-1.7/src/bltDragDrop.c    Thu Apr 14 22:11:03 1994
  2. --- src/bltDragDrop.c    Fri Jul  8 17:09:46 1994
  3. ***************
  4. *** 676,681 ****
  5. --- 676,682 ----
  6.   
  7.               if (dsPtr->button > 0)
  8.               {
  9. + #ifdef ORIGINAL_CODE
  10.                   sprintf(buffer,
  11.                       "bind %.100s <ButtonPress-%d> {%s drag %.100s %%X %%Y}; \
  12.                       bind %.100s <B%d-Motion> {%s drag %.100s %%X %%Y}; \
  13. ***************
  14. *** 683,689 ****
  15.                       argv[2], dsPtr->button, DRAGDROP_COMMAND, argv[2],
  16.                       argv[2], dsPtr->button, DRAGDROP_COMMAND, argv[2],
  17.                       argv[2], dsPtr->button, DRAGDROP_COMMAND, argv[2]);
  18.                   if (Tcl_Eval(interp, buffer) != TCL_OK)
  19.                   {
  20.                       Tk_DestroyWindow(tokenwin);
  21. --- 684,699 ----
  22.                       argv[2], dsPtr->button, DRAGDROP_COMMAND, argv[2],
  23.                       argv[2], dsPtr->button, DRAGDROP_COMMAND, argv[2],
  24.                       argv[2], dsPtr->button, DRAGDROP_COMMAND, argv[2]);
  25. ! #else
  26. !                 sprintf(buffer,
  27. ! "(begin \
  28. !    (bind %.100s \"<ButtonPress-%d>\" '(%s 'drag %.100s |%%X| |%%Y|)) \
  29. !    (bind %.100s \"<B%d-Motion>\" '(%s 'drag %.100s |%%X| |%%Y|)) \
  30. !    (bind %.100s \"<ButtonRelease-%d>\" '(%s 'drop %.100s |%%X| |%%Y|)))",
  31. !                     argv[2], dsPtr->button, DRAGDROP_COMMAND, argv[2],
  32. !                     argv[2], dsPtr->button, DRAGDROP_COMMAND, argv[2],
  33. !                     argv[2], dsPtr->button, DRAGDROP_COMMAND, argv[2]);
  34. ! #endif
  35.                   if (Tcl_Eval(interp, buffer) != TCL_OK)
  36.                   {
  37.                       Tk_DestroyWindow(tokenwin);
  38. ***************
  39. *** 887,893 ****
  40. --- 897,908 ----
  41.                */
  42.               dsPtr->pkgcmdInProg = ~0;
  43.               status = Tcl_VarEval(dsPtr->ddlist->interp,
  44. + #ifdef ORIGINAL_CODE
  45.                   dsPtr->pkgcmd, " ", Tk_PathName(dsPtr->tokenwin),
  46. + #else
  47. +                 "(", dsPtr->pkgcmd, " '", 
  48. +                 Tk_PathName(dsPtr->tokenwin), ")",
  49. + #endif
  50.                   (char*)NULL);
  51.               dsPtr->pkgcmdInProg = 0;
  52.   
  53. ***************
  54. *** 914,920 ****
  55. --- 929,939 ----
  56.                   if (ddlist->errorProc && *ddlist->errorProc)
  57.                   {
  58.                       return Tcl_VarEval(ddlist->interp,
  59. + #ifdef ORIGINAL_CODE
  60.                           ddlist->errorProc, " {", ddlist->interp->result, "}",
  61. + #else
  62. +                         "(", ddlist->errorProc, " ", (char *) STk_Stringify(ddlist->interp->result, 0), ")",
  63. + #endif
  64.                           (char*)NULL);
  65.                   }
  66.                   else
  67. ***************
  68. *** 927,933 ****
  69. --- 946,956 ----
  70.               if (dsPtr->tokenCursor != None)
  71.               {
  72.                   status = Tcl_VarEval(dsPtr->ddlist->interp,
  73. + #ifdef ORIGINAL_CODE
  74.                       Tk_PathName(dsPtr->tkwin), " config -cursor",
  75. + #else
  76. +                         "(", Tk_PathName(dsPtr->tkwin), " 'config :cursor)",
  77. + #endif
  78.                       (char*)NULL);
  79.   
  80.                   if (status == TCL_OK)
  81. ***************
  82. *** 1690,1696 ****
  83. --- 1713,1723 ----
  84.   
  85.           sprintf(buffer, "%d %d", dsPtr->tokenx, dsPtr->tokeny);
  86.           status = Tcl_VarEval(ddlist->interp,
  87. + #ifdef ORIGINAL_CODE
  88.               "send {",target->ddinterp,"} ", DRAGDROP_COMMAND," location ",buffer,
  89. + #else
  90. +             "(send ",target->ddinterp," '(", DRAGDROP_COMMAND," 'location ",buffer,"))", 
  91. + #endif
  92.               (char*)NULL);
  93.   
  94.           if (status == TCL_OK)
  95. ***************
  96. *** 1699,1706 ****
  97. --- 1726,1738 ----
  98.               if (sendcmd)
  99.               {
  100.                   status = Tcl_VarEval(ddlist->interp,
  101. + #ifdef ORIGINAL_CODE
  102.                       sendcmd, " {",target->ddinterp,"} {",target->ddwin,
  103.                       "} {",dsPtr->pkgcmdResult,"}",
  104. + #else
  105. +                     "(", sendcmd, " ",target->ddinterp," '",target->ddwin,
  106. +                     " '",dsPtr->pkgcmdResult,")",
  107. + #endif                             
  108.                       (char*)NULL);
  109.               }
  110.               else
  111. ***************
  112. *** 1727,1733 ****
  113. --- 1759,1770 ----
  114.   
  115.               if (ddlist->errorProc && *ddlist->errorProc)
  116.                   (void) Tcl_VarEval(ddlist->interp,
  117. + #ifdef ORIGINAL_CODE
  118.                       ddlist->errorProc, " {", ddlist->interp->result, "}",
  119. + #else
  120. +                     "(", ddlist->errorProc, " ", 
  121. +                      (char *) STk_Stringify(ddlist->interp->result, 0), ")",
  122. + #endif
  123.                       (char*)NULL);
  124.           }
  125.       }
  126. ***************
  127. *** 1762,1772 ****
  128.        */
  129.       Tcl_ResetResult(interp); /* for Tcl_AppendResult() below */
  130.       if (Tcl_VarEval(interp,
  131.           "send {",interpName,"} ", DRAGDROP_COMMAND," target {",ddName,"} handler",
  132.           (char*)NULL) != TCL_OK)
  133.           return NULL;
  134.       hlist = strdup(interp->result);
  135.       if (Tcl_SplitList(interp, hlist, &hndlc, &hndlv) == TCL_OK)
  136.       {
  137.           /*
  138. --- 1799,1826 ----
  139.        */
  140.       Tcl_ResetResult(interp); /* for Tcl_AppendResult() below */
  141.       if (Tcl_VarEval(interp,
  142. + #ifdef ORIGINAL_CODE
  143.           "send {",interpName,"} ", DRAGDROP_COMMAND," target {",ddName,"} handler",
  144. + #else
  145. +         "(send ",interpName," '(", DRAGDROP_COMMAND," 'target '",ddName," 'handler))",
  146. + #endif
  147.           (char*)NULL) != TCL_OK)
  148.           return NULL;
  149. ! #ifdef ORIGINAL_CODE
  150.       hlist = strdup(interp->result);
  151. + #else
  152. +     /* DIRTY HACKS..... But I don't know how to make it work better */
  153. +     /* Result of send is always a string in STk. So there are '"' to delete */
  154. +     /* Furthermore, The STk Tcl_SplitList doesn't handle very well lists */
  155. +     if (*(interp->result)) {
  156. +       int x = ((interp->result)[1]) == '('? 2: 1;
  157. +       hlist = strdup(interp->result + x);
  158. +       hlist[strlen(hlist)-x] = '\0';
  159. +     }
  160. +     else 
  161. +       hlist = strdup(interp->result);
  162. + #endif
  163.       if (Tcl_SplitList(interp, hlist, &hndlc, &hndlv) == TCL_OK)
  164.       {
  165.           /*
  166. ***************
  167. *** 2117,2123 ****
  168. --- 2171,2181 ----
  169.               char *p = wr->ddprop;
  170.               wr->ddinterp = wr->ddprop;
  171.   
  172. + #ifdef ORIGINAL_CODE
  173.               while ((*p != '\0') && (*p != ']'))
  174. + #else
  175. +             while ((*p != '\0') && (*p != '}'))
  176. + #endif
  177.                   p++;
  178.   
  179.               if (*p != '\0')
  180. ***************
  181. *** 2126,2132 ****
  182. --- 2184,2194 ----
  183.                   wr->ddwin = p;       /* get start of window name */
  184.               }
  185.   
  186. + #ifdef ORIGINAL_CODE
  187.               while ((*p != '\0') && (*p != ']'))
  188. + #else
  189. +             while ((*p != '\0') && (*p != '}'))
  190. + #endif
  191.                   p++;
  192.   
  193.               if (*p != '\0')
  194. ***************
  195. *** 2201,2213 ****
  196. --- 2263,2286 ----
  197.   
  198.       if (dtPtr->tkwin != None)
  199.       {
  200. + #ifdef ORIGINAL_CODE
  201.           static char command[] = { "winfo name ." };
  202. + #else
  203. +         static char command[] = { "(winfo 'name *root*)" };
  204. + #endif
  205.   
  206.           path = Tk_PathName(dtPtr->tkwin);
  207. + #ifdef ORIGINAL_CODE
  208.           if (Tcl_Eval(interp, command)==TCL_OK)
  209.               sprintf(buffer, "%s]%s]", interp->result, path);
  210.           else
  211.               sprintf(buffer, "]%s]", path);
  212. + #else
  213. +         if (Tcl_Eval(interp, command)==TCL_OK)
  214. +             sprintf(buffer, "%s}%s}", interp->result, path);
  215. +         else
  216. +             sprintf(buffer, "}%s}", path);
  217. + #endif
  218.   
  219.           Tcl_SetResult(interp, buffer, TCL_VOLATILE);
  220.           for (thandl=dtPtr->handlers; thandl; thandl=thandl->next)
  221. ***************
  222. *** 2383,2395 ****
  223. --- 2456,2477 ----
  224.   
  225.               sprintf(buffer, "%d", status);
  226.               if ((Tcl_VarEval(dsPtr->ddlist->interp,
  227. + #ifdef ORIGINAL_CODE
  228.                       dsPtr->sitecmd," ",buffer," ",Tk_PathName(dsPtr->tokenwin),
  229. + #else
  230. +                     "(", dsPtr->sitecmd," ",buffer," '",Tk_PathName(dsPtr->tokenwin), ")",
  231. + #endif
  232.                       (char*)NULL) != TCL_OK) &&
  233.                   dsPtr->ddlist->errorProc && *dsPtr->ddlist->errorProc)
  234.   
  235.                   (void) Tcl_VarEval(dsPtr->ddlist->interp,
  236. + #ifdef ORIGINAL_CODE
  237.                       dsPtr->ddlist->errorProc, " {",
  238.                       dsPtr->ddlist->interp->result, "}",
  239. + #else
  240. +                     "(", dsPtr->ddlist->errorProc, " ",
  241. +                      (char *) STk_Stringify(dsPtr->ddlist->interp->result, 0), ")",
  242. + #endif
  243.                       (char*)NULL);
  244.           }
  245.       }
  246.